openCV:滑动条之setTrackbarPos与createTrackbar |
您所在的位置:网站首页 › opencv 滑动条 › openCV:滑动条之setTrackbarPos与createTrackbar |
滑动条(trackbar)
创建滑动条(createTrackbar)
openCV提供createTrackbar指定图像窗口创建一个指定名称和范围的滑动条,使用户能够滑动调整输入,然后根据输入值执行程序。还提供了getTrackbarPos和setTrackbarPos以获取和修改bar的当前值。 // C++ code int createTrackbar(const string& trackbarname, const string& winname, int* value, int count, TrackbarCallback onChange=0, void*userdata=0)Parameters: trackbarname:创建的滑动条名。winname:滑动条的父窗体名。value:滑动条当前值。count:允许的最大值,最小值为0。onChange:回调函数,当滑动条位置发生变化时,调用此函数。函数形如void Foo(int,void*);,第一个是位置值,第二个是userdatauserdata:可以被传递给回调函数,可以在没有全局位置变量时起作用。 获取当前值(getTrackbarPos) int getTrackbarPos(const String& trackbarname, const String& winname)Parameters: trackbarname:滑动条名称。winname:窗口名称 设置滑动条位置(setTrackbarPos) void setTrackbarPos(const String& trackbarname, const String& winname, int pos)Parameters: trackbarname:滑动条名称。winname:窗口名称。pos:新位置。 测试代码代码功能描述: 通过调整滑动条的位置可以调整视频的帧位;”r“键播放视频;”s“键每按一次切换一帧; //code from "Learning OpenCV 3" #include #include #include #include using namespace std; int g_slider_position = 0; int g_run = 1, g_dontset = 0; cv::VideoCapture g_cap; void onTrackbarSlide(int pos, void *) { g_cap.set(cv::CAP_PROP_POS_FRAMES, pos); if (!g_dontset) g_run = 1; g_dontset = 0; } int main() { string winName = "Example2-4"; string trackName = "Position"; cv::namedWindow(winName, cv::WINDOW_AUTOSIZE); g_cap.open(string("C:\\Users\\LIKE\\Videos\\Bad Apple.mp4")); int frames = (int)g_cap.get(cv::CAP_PROP_FRAME_COUNT); int tmpw = (int)g_cap.get(cv::CAP_PROP_FRAME_WIDTH); int tmph = (int)g_cap.get(cv::CAP_PROP_FRAME_HEIGHT); cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |